package fisio.control;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import fisio.global.Const;
import fisio.model.Fisioterapeuta;
import fisio.service.ServicoAcesso;

public class AcessoServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException {
		
		Fisioterapeuta usuario = (Fisioterapeuta)request.getSession().getAttribute("usuario");
		String deslogar = request.getParameter("deslogar");
		String op = request.getParameter("op");
		
		if(deslogar != null && deslogar.equals("1")) {
			request.getSession().invalidate();
			response.sendRedirect(Const.CONTEXT);
			
		} else if(op != null && op.equals("verificarSenha")) {
			String senha = request.getParameter("senha");
			Fisioterapeuta user = ServicoAcesso.autenticarUsuario(usuario.getCpf(), senha);
			
			response.setContentType("text/html");
			response.getWriter().print((user==null?"False":"True"));
				
		} else
			response.sendRedirect(Const.CONTEXT);
	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException {

		Fisioterapeuta usuario = (Fisioterapeuta)request.getSession().getAttribute("usuario");
		String op = request.getParameter("op");
		
		if(op != null && op.equals("alterarSenha")) {
			
			String senhaNova = request.getParameter("senhaNova");
			ServicoAcesso.alterarSenha(usuario.getCpf(), senhaNova);
			
		} else { // login
	
			if(usuario != null)
				request.getSession().invalidate();
				
			this.logar(usuario, request, response);
		}
	}

	private void logar(Fisioterapeuta usuario, HttpServletRequest request, HttpServletResponse response) 
	throws IOException, ServletException {

		String cpf = request.getParameter("cpf");
		String senha = request.getParameter("senha");

		usuario = ServicoAcesso.autenticarUsuario(cpf, senha);

		if(usuario != null) {
			request.getSession().setAttribute("usuario", usuario);
			request.getSession().setAttribute("tabAtiva", "#tabAgenda"); // aba inicial
			response.sendRedirect(Const.PAGE_HOME_LOGADO);

		} else {
			request.setAttribute("msg", "CPF ou Senha inválidos, tente novamente...");
			request.getRequestDispatcher(Const.JSP_LOGIN).forward(request, response);
		}
	}
}